Digital signal compression is widely used in many multimedia applications and devices. Digital signal compression using a coder/decoder (codec) allows streaming media, such as audio or video signals to be transmitted over the Internet or stored on compact discs. A number of different standards of digital video compression have emerged, including H.261, H.263; DV; MPEG-1, MPEG-2, MPEG-4, VC1; and AVC (H.264). These standards, as well as other video compression technologies, seek to efficiently represent a video frame picture by eliminating or reducing spatial and temporal redundancies within a given picture and/or among successive pictures. Through the use of such compression standards, video content can be carried in highly compressed video bit streams, and thus efficiently stored in disks or transmitted over networks.
MPEG-4 AVC (Advanced Video Coding), also known as H.264, is a video compression standard that offers significantly greater compression than its predecessors. The H.264 standard is expected to offer up to twice the compression of the earlier MPEG-2 standard. The H.264 standard is also expected to offer improvements in perceptual quality. As a result, more and more video content is being delivered in the form of AVC (H.264)-coded streams. Two rival DVD formats, the HD-DVD format and the Blu-Ray Disc format support H.264/AVC High Profile decoding as a mandatory player feature. AVC (H.264) coding is described in detail in ISO/IEC 14496-10:2009, “Information technology—Coding of audio-visual objects—Part 10: Advanced Video Coding, Edition 5” May 13, 2009, which is incorporated herein by reference. A copy may be downloaded at the following URL: http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=52974.
The predecessor to H.264 (MPEG-2) had a structure that predicted the current picture from a reference picture. This standard provided a tool to remove data dependency between the current picture and the previous picture. Specifically, MPEG-2 calculated 2-D motion vector for moving a group of pixels between previous picture and current picture. H.264 looks at many motion vectors within a 16×16 block. The current picture has a bunch of pixels that are similar to pixels in the previous picture. The idea is that the chunk of pixels moved from a location in the previous picture to a different location in the current picture. There could be motion within each 16×16 block. H.264 could code many motion vectors within each 16×16 block. It is impractical to encode motion vector for every pixel because eventually the number of motion vectors would exceed the number of pixels, in which case it would be preferable to transmit the pixels instead of the motion vectors. Thus, there is a tradeoff therefore between the number of motion vectors and the number of pixels. H.264 encodes motion vectors for groups of pixels as small as a 4×4 block of pixels. This standard is well balanced between pixels and motion vectors. But other than that, H.264 uses basically the same process and same data flow as MPEG-2.
It is within this context that embodiments of the present invention arise.